package com.jcn.seckill.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.jcn.seckill.domain.MiaoshaUser;
import com.jcn.seckill.redis.RedisService;
import com.jcn.seckill.result.Result;
import com.jcn.seckill.service.MiaoshaUserService;

//定义一个 Controller 控制器
@Controller
//映射请求,指定控制器可以处理哪些URL请求,相当于Servlet中在web.xml中配置
@RequestMapping("/user")
public class UserController {

	//对类成员变量、方法及构造函数进行标注，完成自动装配的工作
	//@Autowired标注可以放在成员变量上，也可以放在成员变量的set方法上，也可以放在任意方法上表示
	@Autowired
	MiaoshaUserService userService;
	
	//对类成员变量、方法及构造函数进行标注，完成自动装配的工作
	//@Autowired标注可以放在成员变量上，也可以放在成员变量的set方法上，也可以放在任意方法上表示
	@Autowired
	RedisService redisService;
	
	//映射请求,指定控制器可以处理哪些URL请求,相当于Servlet中在web.xml中配置
    @RequestMapping("/info")
    /**
     * 返回结果直接写入 HTTP response body 中，
     * 一般在异步获取数据时使用【也就是AJAX】，
     * 在使用 @RequestMapping后，返回值通常解析为跳转路径，
     * 但是加上 @ResponseBody 后返回结果不会被解析为跳转路径，
     * 而是直接写入 HTTP response body 中。 比如异步获取 json 数据，
     * 加上 @ResponseBody 后，会直接返回 json 数据。@RequestBody 
     * 将 HTTP 请求正文插入方法中，
     * 使用适合的 HttpMessageConverter 将请求体写入某个对象。
     * */
    @ResponseBody
    //获取个人用户信息
    public Result<MiaoshaUser> info(Model model,MiaoshaUser user) {
        return Result.success(user);
    }
    
}
